#pragma once

class CUIDrawTool
{
public:
    CUIDrawTool();
    virtual ~CUIDrawTool();

    static BOOL FillSolidRect( HDC hDC, const RECT& rect, COLORREF clr );
    static BOOL FillSolidRect( HDC hDC, const RECT& rect, HBRUSH hBrush );
    static BOOL FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr );
    static BOOL FillSolidRect( HDC hdc, int x, int y, int cx, int cy, HBRUSH hBrush );
    static void DrawRoundRect( HDC hdc, int x, int y, int cx, int cy, int x1, int y1, HPEN hPen );
    static void DrawFrame( HDC hdc, LPRECT lprc, int nSize, COLORREF clr );
    static void DrawFrame( HDC hdc, LPRECT lprc, int nSize, HBRUSH hBrush );
    static void ScreenToFrame( HWND hWnd, POINT& pt );

    static void SetRoundRect( HWND hWnd, int ix, int iy );

    static void GradientFillSlow( HDC hDC, RECT& Rect, COLORREF crFrom, COLORREF crTo, BOOL bHorz );
    static COLORREF BlendColors( COLORREF crA, COLORREF crB, double fAmountA );
    static void GradientFillFast( HDC hDC, RECT& Rect, COLORREF crFrom, COLORREF crTo, BOOL bHorz );

    static void CopyBackground2Foreground( HWND hWnd );

    static void InvalidataSelf( HWND hWnd );
    static void InvalidataParent( HWND hWnd );
};

